import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator

# 读取CSV文件
df = pd.read_csv('某超市销售数据.csv', parse_dates=['订单日期'])

# 使用groupby和sum来计算每个订单日期的销售总额
sales_by_date = df.groupby('订单日期')['销售额'].sum().reset_index()

# 绘制柱状图
plt.figure(figsize=(12, 8))  # 设置图形大小
plt.rcParams["font.sans-serif"] = ["SimHei"]  # 设置中文显示字体
plt.bar(sales_by_date['订单日期'], sales_by_date['销售额'], color='skyblue')
plt.title('订单日期销售总额', fontsize=20)
plt.xlabel('订单日期', fontsize=15)
plt.ylabel('销售总额', fontsize=15)
# 使用MaxNLocator自动设置y轴刻度数量
plt.gca().yaxis.set_major_locator(MaxNLocator(integer=True))  # 整数刻度
plt.xticks(rotation=45)  # 如果日期标签过长，可以旋转它们以便阅读
plt.tight_layout()  # 确保图形标签不会重叠
plt.show()